package com.tencent.wxcloudrun.pojo.dto.req;

import com.tencent.wxcloudrun.pojo.bo.MediaOriInfo;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

/**
 * 新增房屋的入参
 */
@Data
public class AddHouseReq {

    /**
     * 房屋图片视频ID。
     */
    @Size(max = 8, min = 1, message = "房屋图片视频数量应在1~8之间。")
    private List<MediaOriInfo> media;

    /**
     * 房屋标签ID，对应常量表中的值
     */
    @Size(min = 1, max = 100, message = "最少选择一个标签")
    private List<String> tag;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空。")
    private String address;

    /**
     * 经度
     */
    @NotNull(message = "监测到经纬信息解析为空，请确保点击过【选址】按钮进行过地图选择操作！")
    private double longitude;

    /**
     * 纬度
     */
    @NotNull(message = "监测到经纬信息解析为空，请确保点击过【选址】按钮进行过地图选择操作！")
    private double latitude;

    /**
     * 房间号
     */
    @NotBlank(message = "房间号不能为空。")
    @Size(max = 20, message = "房间号不应超过20个字符。")
    private String houseName;

    /**
     * 楼层
     */
    @Size(max = 4, message = "fuck you！")
    private String floor;

    /**
     * 面积
     */
    @DecimalMin(value = "0", message = "面积只能填入正数。")
    private String area;

    /**
     * 每月租金多少元
     */
    @DecimalMin(value = "0")
    @NotNull(message = "每月租金不能为空")
    private BigDecimal mouthMoney;

    /**
     * 押金
     */
    @DecimalMin(value = "0")
    @NotNull(message = "每月押金不能为空")
    private BigDecimal deposit;

    /**
     * 每月管理费
     */
    @DecimalMin(value = "0")
    private BigDecimal manageFee;

    /**
     * 水费单价，多少钱一吨
     */
    @DecimalMin(value = "0", message = "水费单价请填入正数，免费则填0")
    private BigDecimal waterPrice = BigDecimal.ZERO;

    /**
     * 最近一次取得的水费读表值，租客付款完成后更新。
     */
    @DecimalMin(value = "0", message = "水费读表值只能填入正数，无读数则填0")
    private String lastWaterValue = "0";

    /**
     * 电费单价；多少元一度
     */
    @DecimalMin(value = "0", message = "电费单价请填入正数，免费则填0")
    private BigDecimal powerPrice = BigDecimal.ZERO;

    /**
     * 最近一次取得的电费读表值，租客付款完成后更新。
     */
    @DecimalMin(value = "0", message = "电费读表值只能填入正数，无读数则填0")
    private String lastPowerValue = "0";

    /**
     * 天然气费单价；多少元一立方米
     */
//    @DecimalMin(value = "0", message = "天然气单价请填入正数，免费则填0")
    private BigDecimal gasPrice = BigDecimal.ZERO;

    /**
     * 最近一次取得的天然气费读表值，租客付款完成后更新。
     */
//    @DecimalMin(value = "0", message = "天然气费读表值只能填入正数，无读数则填0")
    private String lastGasValue = "0";

    /**
     * 房屋备注
     */
    @Size(max = 500, message = "房屋备注不能超过500字符")
    private String houseRemark;

    /**
     * 费用备注
     */
    @Size(max = 500, message = "费用备注不能超过500字符")
    private String feeRemark;
}
